Інформація про новину
  • Переглядів: 6440
  • Дата: 8-05-2020, 19:34
8-05-2020, 19:34

Створення алгоритмів і програм із розгалуженнями та повтореннями

Категорія: Інформатика





Попередня сторінка:  Вєличини. Алгоритми роботи з величина...
Наступна сторінка:   Рядки як послідовності символів

Вам відомо, що Python, як і інші мови програмування, дозволяє записувати розгалужені й циклічні алгоритми . Тож пригадаймо відповідні оператори та розгляньмо приклади їх використання.

Алгоритмічна структура розгалуження

Якщо залежно від початкових умов можливі декілька варіантів розв’язання задачі, при складанні алгоритму використовується алгоритмічна структура розгалуження

Розгалуження — це алгоритмічна структура, в якій виконання певної послідовності дій залежить від істинності умови (логічного виразу) .

Розглянемо блок-схеми неповного (рис . 3.1) і повного (рис . 3.2) розгалужень, а також приклади запису відповідних умовних операторів мовою Python .

Як бачимо, умовні оператори записують за допомогою ключових слів if (з англ. якщо) та else (з англ. інакше).

Оператори, які належать до гілок if і else, записують із обов’язковим однаковим відступом вправо.

Якщо потрібно послідовно перевірити декілька умов, застосовують множинне розгалуження . Для цього до оператора повного розгалуження слід додати ключове слово elif (від англ . else if — інше якщо) . У гілці elif обов’язково повинен бути логічний вираз — умова, як у заголовку if. У кінці після всіх гілок elif може бути одна гілка else для обробки випадків, які не відповідають умовам гілки if і всіх elif

Створимо програму-довідник, яка за введеною назвою пори року повідомлятиме назви відповідних їй місяців .

Під час виконання програми будь-який рядок, відмінний від української назви пори року, набраної малими літерами, оброблятиметься гілкою else — виводитиметься повідомлення «неправильні дані» .

Алгоритмічна структура повторення

Одним із найважливіших засобів програмування є можливість багаторазового виконання деякого набору команд . Це дозволяє створювати програми для обробки великих сукупностей даних, побудови візерунків тощо

Команди, що повторюються, разом зі службовими словами, які забезпечують керування цим процесом, називаються циклом .

Повторення (цикл) — це алгоритмічна структура, в якій та сама послідовність дій може виконатися кілька разів

Як ви вже знаєте, повторювані під час виконання циклу дії називають тілом циклу, а кожне виконання тіла циклу називають ітерацією .

У Python реалізовано два види операторів циклу: з умовою (рис . 3.3) і з параметром (рис. 3.4). Розглянемо таблицю:

Як і в умовному операторі, команди тіла циклу слід записувати з однаковим відступом від початку рядка із заголовком циклу.

Цикл із умовою

Під час виконання циклу з умовою (while) спочатку перевіряється умова . Якщо вона істинна, то виконується чергова ітерація.

Якщо умова хибна, то виконання циклу припиняється .

Якщо при першій перевірці умова виявиться хибною, то тіло циклу не виконається жодного разу.

Якщо в ході виконання циклу умова залишається істинною, то цикл може повторюватися нескінченно (кажуть, програма «зациклена») .

Цикл із параметром

Тіло циклу із параметром (for) виконується задану кількість разів . Послідовність значень параметра можна задати кількома способами .

• За допомогою вбудованої функції range(start, stop, step), яка повертає послідовність цілих чисел від start до stop (значення stop не включається у послідовність) із кроком step .

Якщо start = 0 або step = 1, то ці параметри можна не зазначати . Щоб вести відлік у зворотному порядку, step має бути від’ємним .

Надрукуємо парні двоцифрові числа у порядку спадання:

У вигляді списку значень, взятого у квадратні дужки; параметр почергово набуває всіх значень зі списку.

У тілі циклу можна використовувати будь-які команди: умовні оператори, інші оператори циклу тощо.

Складемо програму розв’язування задачі .

Знайти двоцифрове число, яке на 26 більше від добутку своїх цифр

Позначимо цифру десятків за а, цифру одиниць за b. Тоді наше двоцифрове число можна виразити через його цифри а і b: 10 • a + b. За умовою задачі число 10а + b на 26 більше від добутку цифр ab. Складемо математичну модель:

10 а + b = ab + 26

Складемо програму для пошуку розв’язків методом перебору Запишемо оператори циклу для перебору всіх можливих сполучень цифр a і b та перевіримо для кожного сполучення умову задачі for a in range(1, 10):

Задача має три розв’язки: числа 32, 56, 98.

Досконалими давні греки називали числа, що дорівнюють сумі всіх своїх дільників, окрім самого числа (6 = 1 + 2 + 3) .

Знайдемо досконалі числа в діапазоні від m до n.

Алгоритм розв’язування задачі: для кожного числа k від m до n знайти суму дільників від 1 до k // 2; якщо сума дільників дорівнює числу k, то вивести значення k.

Використовуючи алгоритмічні структури слідування, розгалуження та повторення, можна побудувати будь-який як завгодно складний алгоритм

Питання для самоперевірки

Чому дорівнюватиме значення змінної b після виконання коду, якщо спочатку: а) а = 13; б) а = 30; в) а = 88; г) а = 11?

2. Запишіть оператор розгалуження для визначення за номером деякого року у (у > 0) номера його століття С.

3. Що буде надруковано після виконання фрагмента програми?

4. Одна пальчикова батарейка може забруднити 400 л води . Об’єм води в озері Світязь становить 180000000 м3 . Запишіть оператор

циклу для визначення того, на який день забрудниться все озеро, якщо першого дня безвідповідально викинути 1 батарейку, а кожного наступного — удвічі більше, ніж попереднього.

5. Запишіть оператори циклу для друку двоцифрових двійкових чисел: 00, 01, 10, 11 .

6. Складіть програму для розв’язування задачі методом перебору. У магазині придбали олівці по 6 грн і зошити по 5 грн. Вартість всієї покупки склала 68 грн . Скільки купили олівців і скільки зошитів?

Вправа з

►► Написати програму для пошуку розв’язку задачі методом перебору. Знайти номер автомобіля, що порушив правила дорожнього руху, якщо відомо, що номер чотирицифровий, кратний 5 і 7, а сума його цифр становить К (4 < К < 36) .

У Python IDLE виберіть команду File ^ New File.

1) Запрограмуйте введення значення змінної k. Запит на введення значення k має повторюватися, поки користувач не введе число, яке відповідає умові:

2) Позначте цифри номера через a, b, c і d. Напишіть оператори циклу для перебору всіх можливих сполучень значень a, b, c і d

Для кожного сполучення значень потрібно перевіряти умову задачі і, якщо умова істинна, виводити чотирицифрове число, що утворюється з цифр a, b, c і d:

3) Збережіть програму у файлі з іменем Vprava3 .

4) Випробуйте програму для: а) k = 25; б) k = 12 .

Комп’ютерне тестування

Виконайте тестове завдання 3 із автоматичною перевіркою результату

 

 

Це матеріал з підручника Інформатика за 7 клас Бондаренко

 




Попередня сторінка:  Вєличини. Алгоритми роботи з величина...
Наступна сторінка:   Рядки як послідовності символів



^